package com.arithmetic.dynamic;

import java.util.Scanner;

/**
 * 跳台阶
 * 一只青蛙一次可以跳上1级台阶，也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法（先后次序不同算不同的结果）。
 *
 * @author chenyichang
 * @since 2022/8/29
 */
public class DanceStep {

    /**
     * 如果有n级台阶
     * 先跳1级==>后面剩n-1级台阶
     * 先跳2级==>后面剩n-2级台阶
     * 所以 f(n) = f(n-1) + f(n-2) 即转变为经典的斐波拉契数列
     */
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        if (num == 1) {
            System.out.println(1);
            return;
        } else if (num == 2) {
            System.out.println(2);
            return;
        }
        int f1 = 1;
        int f2 = 2;
        int result = 0;

        for (int i = 3; i <= num; i++) {
            result = f1 + f2;
            f1 = f2;
            f2 = result;
        }
        System.out.println(f2);
    }
}
